
function generateTree() {
    var ajaxReturn = $.ajax({
        url: "auth/get/whole/tree.json",
        type: "post",
        dataType: "json",
        async: false
    })

    if (ajaxReturn.status != 200) {
        layer.msg("错误代码：" + ajaxReturn.status + ",错误信息：" + ajaxReturn.statusText);
        return;
    }

    // 返回的对象
    var resultObj = ajaxReturn.responseJSON.data;

    // 1 创建json对象用于存储对zTree所做的设置

    var setting = {
        "view":{
            "addHoverDom":myAddHoverDom,
            "removeHoverDom":myRemoveHoverDom
        },
        "data": {
            "simpleData": {
                // 开启简单 JSON 功能
                "enable": true,
                // 使用 categoryId 属性关联父节点，不用默认的 pId 了
                "pIdKey": "categoryId"
            }, "key": {
                // 使用 title 属性显示节点名称，不用默认的 name 作为属性名了
                "name": "title",
                "url":"false"
            }
        }
    };

    // 3 初始化树形结构
    $.fn.zTree.init($("#authTreeDemo"), setting, resultObj);

    // 4 调用 zTreeObj 对象的方法，把节点展开
    var zTreeObj = $.fn.zTree.getZTreeObj("authTreeDemo");
    zTreeObj.expandAll(true);
}

// 鼠标移入节点添加按钮
function myAddHoverDom(treeId, treeNode) {
    // 为了给追加的标签加上Id
    var btnGroupId = treeNode.tId + "_btnGrp";

    // 判断是否为第一次添加
    if ($("#" + btnGroupId).length > 0) {
        return;
    }

    var addBtn = "<a id='"+treeNode.id+"' class=\"btn btn-info dropdown-toggle btn-xs addBtn\" style=\"margin-left:10px;padding-top:0px;\" href=\"#\"title=\"添加节点\">&nbsp;&nbsp;<i class=\"fa fa-fw fa-plus rbg \"></i></a>";
    var removeBtn = "<a id='"+treeNode.id+"'  class=\"btn btn-info dropdown-toggle btn-xs removeBtn\" style=\"margin-left:10px;padding-top:0px;\" href=\"#\"title=\"删除节点\">&nbsp;&nbsp;<i class=\"fa fa-fw fa-times rbg \"></i></a>";
    var editBtn = "<a  id='"+treeNode.id+"' class=\"btn btn-info dropdown-toggle btn-xs editBtn\" style=\"margin-left:10px;padding-top:0px;\" href=\"#\" title=\"修改节点\">&nbsp;&nbsp;<i class=\"fa fa-fw fa-edit rbg \"></i></a>";

    // console.log(treeNode);

    // 获取当前节点的级别数据
    var level = treeNode.level;

    // 声明一个变量存储拼装好的代码
    var btnHTML = "";

    // 判断当前节点的级别
    if (level == 0){
        btnHTML = addBtn;
        if (treeNode.children == null){
            btnHTML = btnHTML +""+ removeBtn;
        }
    }
    if (level == 1){
        btnHTML = editBtn + " " + removeBtn;

    }

    // 按钮组出现的位置在节点treeDemo_n_a超链接后面
    $("#" + treeNode.tId + "_a").after("<span id='" + btnGroupId + "'>"+btnHTML+"</span>")
}

// 鼠标移出节点删除按钮
function myRemoveHoverDom(treeId, treeNode) {
    var btnGroupId = treeNode.tId + "_btnGrp";
    $("#" + btnGroupId).remove();
}